Instead of open-coding checks for sandboxing in multiple
places, add a helper function that caches the information.
https://bugzilla.gnome.org/show_bug.cgi?id=768499
g_once (®ister_resources_once, register_resources, NULL);
}
+
+gboolean
+gtk_should_use_portal (void)
+{
+ static const char *use_portal = NULL;
+
+ if (G_UNLIKELY (use_portal == NULL))
+ {
+ char *path;
+
+ path = g_build_filename (g_get_user_runtime_dir (), "flatpak-info", NULL);
+ if (g_file_test (path, G_FILE_TEST_EXISTS))
+ use_portal = "1";
+ else
+ {
+ use_portal = g_getenv ("GTK_USE_PORTAL");
+ if (!use_portal)
+ use_portal = "";
+ }
+ g_free (path);
+ }
+
+ return use_portal[0] == '1';
+}
gdouble _gtk_get_slowdown ();
void _gtk_set_slowdown (gdouble slowdown_factor);
+gboolean gtk_should_use_portal (void);
+
#ifdef G_OS_WIN32
void _gtk_load_dll_with_libgtk3_manifest (const char *dllname);
#endif